home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ddj0897.zip / DYN401.ZIP / class / shortint.c < prev    next >
C/C++ Source or Header  |  1997-04-16  |  5KB  |  194 lines

  1.  
  2.  
  3. /*  Copyright (c) 1993-1996 Algorithms Corporation  */
  4. /*  All rights reserved.  */
  5.  
  6.  
  7.  
  8.  
  9. /*  This file automatically generated by dpp - do not edit  */
  10.  
  11. #define    DPP_STRATEGY    2
  12. #define    DPP_FASTWIDE    0
  13.  
  14.  
  15.  
  16. #line 15 "shortint.d"
  17. #include <math.h> 
  18.  
  19. #define    CLASS    ShortInteger_c
  20. #define    ivType    ShortInteger_iv_t
  21.  
  22. #include "generics.h"
  23.  
  24. object    ShortInteger_c;
  25.  
  26.  
  27. #line 28 "shortint.c"
  28. typedef struct  _ShortInteger_iv_t  {
  29.     short int iVal;
  30. }    ShortInteger_iv_t;
  31.  
  32.  
  33.  
  34. #line 21 "shortint.d"
  35. cmeth objrtn ShortInteger_cm_gNewWithInt(object self, int val)
  36.     object obj = oSuper(ShortInteger_c, gNew, self)(self); 
  37.     ivType *iv = ivPtr(obj); 
  38.     iv->iVal = (short int) val; 
  39.     return(obj); 
  40.  
  41. imeth int ShortInteger_im_gHash(object self)
  42. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  43.     double t; 
  44.  
  45.     t = .6125423371 * (unsigned) iv->iVal; 
  46.     t = t < 0.0 ? -t : t; 
  47.     return (int) (BIG_INT * (t - floor(t))); 
  48.  
  49. imeth int ShortInteger_im_gCompare(object self, object obj)
  50. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  51.     short sv, ov; 
  52.  
  53.     ChkArg(obj, 2); 
  54.     if (ClassOf(obj) != CLASS) 
  55.         return oSuper(ShortInteger_c, gCompare, self)(self, obj); 
  56.     if ((sv=iv->iVal) < (ov=ivPtr(obj)->iVal)) 
  57.         return -1; 
  58.     else if (sv == ov) 
  59.         return 0; 
  60.     else 
  61.         return 1; 
  62.  
  63. imeth objrtn ShortInteger_im_gStringRepValue(object self)
  64. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  65.     return vSprintf(String, "%hd", iv->iVal); 
  66.  
  67. imeth char ShortInteger_im_gCharValue(object self)
  68. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  69.     return (char) iv->iVal; 
  70.  
  71. imeth short ShortInteger_im_gShortValue(object self)
  72. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  73.     return (short) iv->iVal; 
  74.  
  75. imeth unsigned short ShortInteger_im_gUnsignedShortValue(object self)
  76. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  77.     return (unsigned short) iv->iVal; 
  78.  
  79. imeth long ShortInteger_im_gLongValue(object self)
  80. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  81.     return (long) iv->iVal; 
  82.  
  83. imeth double ShortInteger_im_gDoubleValue(object self)
  84. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  85.     return (double) iv->iVal; 
  86.  
  87. imeth void * ShortInteger_im_gPointerValue(object self)
  88. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  89.     return (void *) &iv->iVal; 
  90.  
  91. imeth objrtn ShortInteger_im_gChangeValue(object self, object val)
  92. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  93.     ChkArg(val, 2); 
  94.     iv->iVal = gShortValue(val); 
  95.     return self; 
  96.  
  97. imeth objrtn ShortInteger_im_gChangeCharValue(object self, int val)
  98. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  99.     iv->iVal = (short) val; 
  100.     return self; 
  101.  
  102. imeth objrtn ShortInteger_im_gChangeShortValue(object self, int val)
  103. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  104.     iv->iVal = (short) val; 
  105.     return self; 
  106.  
  107. imeth objrtn ShortInteger_im_gChangeUShortValue(object self, unsigned val)
  108. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  109.     iv->iVal = (short) val; 
  110.     return self; 
  111.  
  112. imeth objrtn ShortInteger_im_gChangeLongValue(object self, long val)
  113. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  114.     iv->iVal = (short) val; 
  115.     return self; 
  116.  
  117. imeth objrtn ShortInteger_im_gChangeDoubleValue(object self, double val)
  118. { ShortInteger_iv_t *iv = GetIVs(ShortInteger, self);
  119.     iv->iVal = (short) val; 
  120.     return self; 
  121.  
  122.  
  123. #line 141 "shortint.c"
  124.  
  125. objrtn    ShortInteger_initialize(void)
  126. {
  127.     static  CRITICALSECTION  cs;
  128.     static  int volatile once = 0;
  129.  
  130.     ENTERCRITICALSECTION(_CI_CS_);
  131.     if (!once) {
  132.         INITIALIZECRITICALSECTION(cs);
  133.         once = 1;
  134.     }
  135.     LEAVECRITICALSECTION(_CI_CS_);
  136.  
  137.     ENTERCRITICALSECTION(cs);
  138.  
  139.     if (ShortInteger_c) {
  140.         LEAVECRITICALSECTION(cs);
  141.         return ShortInteger_c;
  142.     }
  143.     INHIBIT_THREADER;
  144.     Number_initialize();
  145.     if (ShortInteger_c)  {
  146.         ENABLE_THREADER;
  147.         LEAVECRITICALSECTION(cs);
  148.         return ShortInteger_c;
  149.     }
  150.     ShortInteger_c = gNewClass(Class, "ShortInteger", sizeof(ShortInteger_iv_t), 0, Number, END);
  151.     cMethodFor(ShortInteger, gNewWithInt, ShortInteger_cm_gNewWithInt);
  152.     iMethodFor(ShortInteger, gUnsignedShortValue, ShortInteger_im_gUnsignedShortValue);
  153.     iMethodFor(ShortInteger, gChangeDoubleValue, ShortInteger_im_gChangeDoubleValue);
  154.     iMethodFor(ShortInteger, gDoubleValue, ShortInteger_im_gDoubleValue);
  155.     iMethodFor(ShortInteger, gCompare, ShortInteger_im_gCompare);
  156.     iMethodFor(ShortInteger, gChangeLongValue, ShortInteger_im_gChangeLongValue);
  157.     iMethodFor(ShortInteger, gChangeShortValue, ShortInteger_im_gChangeShortValue);
  158.     iMethodFor(ShortInteger, gShortValue, ShortInteger_im_gShortValue);
  159.     iMethodFor(ShortInteger, gPointerValue, ShortInteger_im_gPointerValue);
  160.     iMethodFor(ShortInteger, gCharValue, ShortInteger_im_gCharValue);
  161.     iMethodFor(ShortInteger, gStringRepValue, ShortInteger_im_gStringRepValue);
  162.     iMethodFor(ShortInteger, gChangeUShortValue, ShortInteger_im_gChangeUShortValue);
  163.     iMethodFor(ShortInteger, gHash, ShortInteger_im_gHash);
  164.     iMethodFor(ShortInteger, gChangeValue, ShortInteger_im_gChangeValue);
  165.     iMethodFor(ShortInteger, gLongValue, ShortInteger_im_gLongValue);
  166.     iMethodFor(ShortInteger, gChangeCharValue, ShortInteger_im_gChangeCharValue);
  167.  
  168.     ENABLE_THREADER;
  169.  
  170.     LEAVECRITICALSECTION(cs);
  171.  
  172.     return ShortInteger_c;
  173. }
  174.  
  175.  
  176.  
  177.